source("../../lib/som-utils.R")
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
source("../../lib/maps-utils.R")
Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
mpr.set_base_path_analysis()
model <- mpr.load_model("som-297.rds.xz")
summary(model)
SOM of size 5x5 with a hexagonal topology and a bubble neighbourhood function.
The number of data layers is 1.
Distance measure(s) used: sumofsquares.
Training data included: 94881 objects.
Mean distance to the closest unit in the map: 0.86.
plot(model, type="changes")
df <- mpr.load_data("datos_mes.csv.xz")
df
summary(df)
id_estacion fecha fecha_cnt tmax
Length:94881 Length:94881 Min. : 1.000 Min. :-53.0
Class :character Class :character 1st Qu.: 4.000 1st Qu.:148.0
Mode :character Mode :character Median : 6.000 Median :198.0
Mean : 6.497 Mean :200.2
3rd Qu.: 9.000 3rd Qu.:255.0
Max. :12.000 Max. :403.0
tmin precip nevada prof_nieve
Min. :-121.00 Min. : 0.00 Min. :0.000000 Min. : 0.000
1st Qu.: 53.00 1st Qu.: 3.00 1st Qu.:0.000000 1st Qu.: 0.000
Median : 98.00 Median : 10.00 Median :0.000000 Median : 0.000
Mean : 98.86 Mean : 16.25 Mean :0.000295 Mean : 0.467
3rd Qu.: 148.00 3rd Qu.: 22.00 3rd Qu.:0.000000 3rd Qu.: 0.000
Max. : 254.00 Max. :422.00 Max. :6.000000 Max. :1834.000
longitud latitud altitud
Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.:38.28 1st Qu.: -5.6417 1st Qu.: 42.0
Median :40.82 Median : -3.4500 Median : 247.0
Mean :39.66 Mean : -3.4350 Mean : 418.5
3rd Qu.:42.08 3rd Qu.: 0.4914 3rd Qu.: 656.0
Max. :43.57 Max. : 4.2156 Max. :2535.0
world <- ne_countries(scale = "medium", returnclass = "sf")
spain <- subset(world, admin == "Spain")
plot(model, type="count", shape = "straight", palette.name = mpr.degrade.bleu)
NĂºmero de elementos en cada celda:
nb <- table(model$unit.classif)
print(nb)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
3684 4537 4280 4379 5498 5658 3493 4915 2588 7017 1882 3900 6623 1326 6481 1531
17 18 19 20 21 22 23 24 25
3717 3012 4304 3506 280 3065 6474 1542 1189
ComprobaciĂ³n de nodos vacĂos:
dim_model <- 5*5;
len_nb = length(nb);
empty_nodes <- dim_model != len_nb;
if (empty_nodes) {
print(paste("[Warning] Existen nodos vacĂos: ", len_nb, "/", dim_model))
}
plot(model, type="dist.neighbours", shape = "straight")
model_colnames = c("tmax", "tmin", "precip", "longitud", "latitud", "altitud")
model_ncol = length(model_colnames)
plot(model, shape = "straight")
par(mfrow=c(3,4))
for (j in 1:model_ncol) {
plot(model, type="property", property=getCodes(model,1)[,j],
palette.name=mpr.coolBlueHotRed,
main=model_colnames[j],
cex=0.5, shape = "straight")
}
if (!empty_nodes) {
cor <- apply(getCodes(model,1), 2, mpr.weighted.correlation, w=nb, som=model)
print(cor)
}
tmax tmin precip longitud latitud altitud
[1,] -0.1160766 -0.3479279 -0.1574735 0.4582451 0.336160578 0.5866394
[2,] -0.9359259 -0.8833922 0.4330076 0.1847318 0.005196281 0.3635443
RepresentaciĂ³n de cada variable en un mapa de factores:
if (!empty_nodes) {
par(mfrow=c(1,1))
plot(cor[1,], cor[2,], xlim=c(-1,1), ylim=c(-1,1), type="n")
lines(c(-1,1),c(0,0))
lines(c(0,0),c(-1,1))
text(cor[1,], cor[2,], labels=model_colnames, cex=0.75)
symbols(0,0,circles=1,inches=F,add=T)
}
Importancia de cada variable - varianza ponderada por el tamaño de la celda:
if (!empty_nodes) {
sigma2 <- sqrt(apply(getCodes(model,1),2,function(x,effectif)
{m<-sum(effectif*(x-weighted.mean(x,effectif))^2)/(sum(effectif)-1)},
effectif=nb))
print(sort(sigma2,decreasing=T))
}
longitud altitud tmax tmin latitud precip
0.9570552 0.9377615 0.9348364 0.9282694 0.9243363 0.8788847
if (!empty_nodes) {
hac <- mpr.hac(model, nb)
}
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=3)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=3)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.0 Min. : 0.00
1st Qu.: 4.000 1st Qu.:147.0 1st Qu.: 50.0 1st Qu.: 3.00
Median : 6.000 Median :194.0 Median : 93.0 Median : 11.00
Mean : 6.493 Mean :199.1 Mean : 94.9 Mean : 16.54
3rd Qu.: 9.000 3rd Qu.:255.0 3rd Qu.: 141.0 3rd Qu.: 23.00
Max. :12.000 Max. :403.0 Max. : 254.0 Max. :133.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :28.46 Min. :-17.7550
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:38.99 1st Qu.: -4.8500
Median :0.000000 Median : 0.0000 Median :40.96 Median : -2.4831
Mean :0.000319 Mean : 0.4809 Mean :40.54 Mean : -2.4411
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:42.22 3rd Qu.: 0.4942
Max. :6.000000 Max. :1834.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 44.0
Median : 251.0
Mean : 410.5
3rd Qu.: 667.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.000 1st Qu.:201.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 7.000 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.505 Mean :217.6 Mean :150.8 Mean : 6.705 Mean :0
3rd Qu.: 9.000 3rd Qu.:253.0 3rd Qu.:190.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.000 Max. :356.0 Max. :244.0 Max. :114.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.56 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03096 Mean :28.36 Mean :-16.05 Mean : 518.6
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : -8.0 Min. :-58.00 Min. :114.0 Min. :0
1st Qu.: 2.000 1st Qu.:109.8 1st Qu.: 48.00 1st Qu.:133.0 1st Qu.:0
Median :10.000 Median :130.0 Median : 69.00 Median :145.0 Median :0
Mean : 7.407 Mean :133.0 Mean : 70.01 Mean :158.3 Mean :0
3rd Qu.:11.000 3rd Qu.:154.0 3rd Qu.: 91.25 3rd Qu.:167.2 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:40.80 1st Qu.: -8.624 1st Qu.: 105.5
Median : 0.000 Median :42.24 Median : -8.411 Median : 261.0
Mean : 6.754 Mean :41.11 Mean : -6.504 Mean : 499.7
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -4.010 3rd Qu.: 370.0
Max. :892.000 Max. :43.49 Max. : 2.827 Max. :2400.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=4)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=4)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 56 Min. :-22.0 Min. : 0.00 Min. :0
1st Qu.: 5.000 1st Qu.:196 1st Qu.: 97.0 1st Qu.: 3.00 1st Qu.:0
Median : 7.000 Median :238 Median :129.0 Median : 10.00 Median :0
Mean : 6.965 Mean :237 Mean :129.5 Mean : 17.06 Mean :0
3rd Qu.: 9.000 3rd Qu.:282 3rd Qu.:162.0 3rd Qu.: 23.00 3rd Qu.:0
Max. :12.000 Max. :403 Max. :254.0 Max. :133.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :28.46 Min. :-17.7550 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:37.96 1st Qu.: -5.6983 1st Qu.: 32.0
Median : 0.00000 Median :40.82 Median : -3.7642 Median : 91.1
Mean : 0.01833 Mean :40.27 Mean : -3.1545 Mean : 268.7
3rd Qu.: 0.00000 3rd Qu.:42.38 3rd Qu.: 0.0406 3rd Qu.: 510.0
Max. :40.00000 Max. :43.57 Max. : 4.2156 Max. :1894.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.000 1st Qu.:201.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 7.000 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.505 Mean :217.6 Mean :150.8 Mean : 6.705 Mean :0
3rd Qu.: 9.000 3rd Qu.:253.0 3rd Qu.:190.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.000 Max. :356.0 Max. :244.0 Max. :114.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.56 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03096 Mean :28.36 Mean :-16.05 Mean : 518.6
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 2.000 1st Qu.:107.8 1st Qu.: 14.00 1st Qu.: 5.00
Median : 4.000 Median :142.0 Median : 41.00 Median : 12.00
Mean : 5.721 Mean :136.9 Mean : 38.27 Mean : 15.68
3rd Qu.:11.000 3rd Qu.:171.0 3rd Qu.: 65.00 3rd Qu.: 23.00
Max. :12.000 Max. :255.0 Max. : 146.00 Max. :126.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.000 Min. :37.13 Min. :-8.4106
1st Qu.:0.000000 1st Qu.: 0.000 1st Qu.:40.38 1st Qu.:-3.7642
Median :0.000000 Median : 0.000 Median :41.15 Median :-1.3044
Mean :0.000842 Mean : 1.238 Mean :40.98 Mean :-1.2728
3rd Qu.:0.000000 3rd Qu.: 0.000 3rd Qu.:41.98 3rd Qu.: 0.9844
Max. :6.000000 Max. :1834.000 Max. :43.46 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 176.0
Median : 609.0
Mean : 642.6
3rd Qu.: 890.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : -8.0 Min. :-58.00 Min. :114.0 Min. :0
1st Qu.: 2.000 1st Qu.:109.8 1st Qu.: 48.00 1st Qu.:133.0 1st Qu.:0
Median :10.000 Median :130.0 Median : 69.00 Median :145.0 Median :0
Mean : 7.407 Mean :133.0 Mean : 70.01 Mean :158.3 Mean :0
3rd Qu.:11.000 3rd Qu.:154.0 3rd Qu.: 91.25 3rd Qu.:167.2 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:40.80 1st Qu.: -8.624 1st Qu.: 105.5
Median : 0.000 Median :42.24 Median : -8.411 Median : 261.0
Mean : 6.754 Mean :41.11 Mean : -6.504 Mean : 499.7
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -4.010 3rd Qu.: 370.0
Max. :892.000 Max. :43.49 Max. : 2.827 Max. :2400.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=5)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=5)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 82.0 Min. :-19 Min. : 0.000 Min. :0
1st Qu.: 5.000 1st Qu.:211.0 1st Qu.:103 1st Qu.: 2.000 1st Qu.:0
Median : 7.000 Median :250.0 Median :135 Median : 7.000 Median :0
Mean : 6.938 Mean :247.9 Mean :135 Mean : 9.748 Mean :0
3rd Qu.: 9.000 3rd Qu.:289.0 3rd Qu.:168 3rd Qu.:16.000 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254 Max. :46.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :35.28 Min. :-8.6494 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:37.96 1st Qu.:-5.6417 1st Qu.: 32.0
Median : 0.0000 Median :40.48 Median :-3.6781 Median : 95.0
Mean : 0.0107 Mean :40.10 Mean :-3.0237 Mean : 288.8
3rd Qu.: 0.0000 3rd Qu.:42.08 3rd Qu.: 0.0714 3rd Qu.: 540.0
Max. :40.0000 Max. :43.57 Max. : 4.2156 Max. :1894.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.000 1st Qu.:201.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 7.000 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.505 Mean :217.6 Mean :150.8 Mean : 6.705 Mean :0
3rd Qu.: 9.000 3rd Qu.:253.0 3rd Qu.:190.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.000 Max. :356.0 Max. :244.0 Max. :114.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.56 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03096 Mean :28.36 Mean :-16.05 Mean : 518.6
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 56.0 Min. :-22.0 Min. : 23.00 Min. :0
1st Qu.: 4.000 1st Qu.:145.0 1st Qu.: 73.0 1st Qu.: 38.00 1st Qu.:0
Median : 8.000 Median :178.0 Median :100.0 Median : 48.00 Median :0
Mean : 7.097 Mean :182.8 Mean :101.9 Mean : 53.72 Mean :0
3rd Qu.:10.000 3rd Qu.:218.0 3rd Qu.:130.0 3rd Qu.: 64.00 3rd Qu.:0
Max. :12.000 Max. :352.0 Max. :221.0 Max. :133.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :28.46 Min. :-17.755 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:38.99 1st Qu.: -6.350 1st Qu.: 27.0
Median : 0.00000 Median :42.26 Median : -3.831 Median : 87.0
Mean : 0.05659 Mean :41.15 Mean : -3.810 Mean : 168.2
3rd Qu.: 0.00000 3rd Qu.:43.31 3rd Qu.: -1.787 3rd Qu.: 251.0
Max. :35.00000 Max. :43.57 Max. : 4.216 Max. :1572.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 2.000 1st Qu.:107.8 1st Qu.: 14.00 1st Qu.: 5.00
Median : 4.000 Median :142.0 Median : 41.00 Median : 12.00
Mean : 5.721 Mean :136.9 Mean : 38.27 Mean : 15.68
3rd Qu.:11.000 3rd Qu.:171.0 3rd Qu.: 65.00 3rd Qu.: 23.00
Max. :12.000 Max. :255.0 Max. : 146.00 Max. :126.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.000 Min. :37.13 Min. :-8.4106
1st Qu.:0.000000 1st Qu.: 0.000 1st Qu.:40.38 1st Qu.:-3.7642
Median :0.000000 Median : 0.000 Median :41.15 Median :-1.3044
Mean :0.000842 Mean : 1.238 Mean :40.98 Mean :-1.2728
3rd Qu.:0.000000 3rd Qu.: 0.000 3rd Qu.:41.98 3rd Qu.: 0.9844
Max. :6.000000 Max. :1834.000 Max. :43.46 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 176.0
Median : 609.0
Mean : 642.6
3rd Qu.: 890.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : -8.0 Min. :-58.00 Min. :114.0 Min. :0
1st Qu.: 2.000 1st Qu.:109.8 1st Qu.: 48.00 1st Qu.:133.0 1st Qu.:0
Median :10.000 Median :130.0 Median : 69.00 Median :145.0 Median :0
Mean : 7.407 Mean :133.0 Mean : 70.01 Mean :158.3 Mean :0
3rd Qu.:11.000 3rd Qu.:154.0 3rd Qu.: 91.25 3rd Qu.:167.2 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:40.80 1st Qu.: -8.624 1st Qu.: 105.5
Median : 0.000 Median :42.24 Median : -8.411 Median : 261.0
Mean : 6.754 Mean :41.11 Mean : -6.504 Mean : 499.7
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -4.010 3rd Qu.: 370.0
Max. :892.000 Max. :43.49 Max. : 2.827 Max. :2400.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=6)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=6)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 82.0 Min. :-19 Min. : 0.000 Min. :0
1st Qu.: 5.000 1st Qu.:211.0 1st Qu.:103 1st Qu.: 2.000 1st Qu.:0
Median : 7.000 Median :250.0 Median :135 Median : 7.000 Median :0
Mean : 6.938 Mean :247.9 Mean :135 Mean : 9.748 Mean :0
3rd Qu.: 9.000 3rd Qu.:289.0 3rd Qu.:168 3rd Qu.:16.000 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254 Max. :46.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :35.28 Min. :-8.6494 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:37.96 1st Qu.:-5.6417 1st Qu.: 32.0
Median : 0.0000 Median :40.48 Median :-3.6781 Median : 95.0
Mean : 0.0107 Mean :40.10 Mean :-3.0237 Mean : 288.8
3rd Qu.: 0.0000 3rd Qu.:42.08 3rd Qu.: 0.0714 3rd Qu.: 540.0
Max. :40.0000 Max. :43.57 Max. : 4.2156 Max. :1894.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.000 1st Qu.:201.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 7.000 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.505 Mean :217.6 Mean :150.8 Mean : 6.705 Mean :0
3rd Qu.: 9.000 3rd Qu.:253.0 3rd Qu.:190.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.000 Max. :356.0 Max. :244.0 Max. :114.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.56 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03096 Mean :28.36 Mean :-16.05 Mean : 518.6
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 56.0 Min. :-22.0 Min. : 23.00 Min. :0
1st Qu.: 4.000 1st Qu.:145.0 1st Qu.: 73.0 1st Qu.: 38.00 1st Qu.:0
Median : 8.000 Median :178.0 Median :100.0 Median : 48.00 Median :0
Mean : 7.097 Mean :182.8 Mean :101.9 Mean : 53.72 Mean :0
3rd Qu.:10.000 3rd Qu.:218.0 3rd Qu.:130.0 3rd Qu.: 64.00 3rd Qu.:0
Max. :12.000 Max. :352.0 Max. :221.0 Max. :133.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :28.46 Min. :-17.755 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:38.99 1st Qu.: -6.350 1st Qu.: 27.0
Median : 0.00000 Median :42.26 Median : -3.831 Median : 87.0
Mean : 0.05659 Mean :41.15 Mean : -3.810 Mean : 168.2
3rd Qu.: 0.00000 3rd Qu.:43.31 3rd Qu.: -1.787 3rd Qu.: 251.0
Max. :35.00000 Max. :43.57 Max. : 4.216 Max. :1572.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. : -4.0 Min. :-110.00 Min. : 0.00
1st Qu.: 2.000 1st Qu.:112.0 1st Qu.: 17.00 1st Qu.: 4.00
Median : 4.000 Median :145.0 Median : 42.00 Median :11.00
Mean : 5.644 Mean :141.4 Mean : 40.27 Mean :14.03
3rd Qu.:11.000 3rd Qu.:172.0 3rd Qu.: 65.00 3rd Qu.:21.00
Max. :12.000 Max. :250.0 Max. : 132.00 Max. :84.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :37.13 Min. :-8.4106
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:40.30 1st Qu.:-3.7642
Median :0.000000 Median : 0.0000 Median :41.11 Median :-1.4106
Mean :0.000921 Mean : 0.1051 Mean :40.89 Mean :-1.3710
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:41.77 3rd Qu.: 0.8031
Max. :6.000000 Max. :75.0000 Max. :43.46 Max. : 4.2156
altitud
Min. : 1
1st Qu.: 123
Median : 541
Mean : 505
3rd Qu.: 779
Max. :1894
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.00 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.: 32.00 1st Qu.: -30.00 1st Qu.: 16.00
Median : 7.000 Median : 81.00 Median : 13.00 Median : 29.00
Mean : 6.536 Mean : 88.32 Mean : 17.07 Mean : 33.19
3rd Qu.: 9.000 3rd Qu.:143.00 3rd Qu.: 66.00 3rd Qu.: 46.00
Max. :12.000 Max. :255.00 Max. : 146.00 Max. :126.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. : 0.00 Min. :40.78 Min. :-4.0103 Min. :1405
1st Qu.:0 1st Qu.: 0.00 1st Qu.:40.78 1st Qu.:-4.0103 1st Qu.:1894
Median :0 Median : 0.00 Median :42.38 Median : 0.9844 Median :2143
Mean :0 Mean : 13.25 Mean :41.94 Mean :-0.2315 Mean :2102
3rd Qu.:0 3rd Qu.: 0.00 3rd Qu.:42.53 3rd Qu.: 1.5242 3rd Qu.:2316
Max. :0 Max. :1834.00 Max. :42.77 Max. : 2.4378 Max. :2535
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : -8.0 Min. :-58.00 Min. :114.0 Min. :0
1st Qu.: 2.000 1st Qu.:109.8 1st Qu.: 48.00 1st Qu.:133.0 1st Qu.:0
Median :10.000 Median :130.0 Median : 69.00 Median :145.0 Median :0
Mean : 7.407 Mean :133.0 Mean : 70.01 Mean :158.3 Mean :0
3rd Qu.:11.000 3rd Qu.:154.0 3rd Qu.: 91.25 3rd Qu.:167.2 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:40.80 1st Qu.: -8.624 1st Qu.: 105.5
Median : 0.000 Median :42.24 Median : -8.411 Median : 261.0
Mean : 6.754 Mean :41.11 Mean : -6.504 Mean : 499.7
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -4.010 3rd Qu.: 370.0
Max. :892.000 Max. :43.49 Max. : 2.827 Max. :2400.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=8)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=8)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :159.0 Min. : 37.0 Min. : 0.000 Min. :0
1st Qu.: 6.000 1st Qu.:241.0 1st Qu.:116.0 1st Qu.: 1.000 1st Qu.:0
Median : 7.000 Median :275.0 Median :149.0 Median : 5.000 Median :0
Mean : 7.324 Mean :272.9 Mean :148.6 Mean : 7.583 Mean :0
3rd Qu.: 9.000 3rd Qu.:303.0 3rd Qu.:181.0 3rd Qu.:12.000 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :44.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :35.28 Min. :-8.6239 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:38.88 1st Qu.:-3.8075 1st Qu.: 44.0
Median : 0.0000 Median :40.47 Median :-1.4106 Median : 287.0
Mean : 0.0017 Mean :40.07 Mean :-1.6434 Mean : 380.7
3rd Qu.: 0.0000 3rd Qu.:41.53 3rd Qu.: 0.6217 3rd Qu.: 667.0
Max. :35.0000 Max. :43.36 Max. : 4.2156 Max. :1894.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 82.0 Min. :-19.0 Min. : 0.00 Min. :0
1st Qu.: 3.000 1st Qu.:167.0 1st Qu.: 78.0 1st Qu.: 6.00 1st Qu.:0
Median : 6.000 Median :200.0 Median :111.0 Median :13.00 Median :0
Mean : 6.194 Mean :199.4 Mean :108.6 Mean :13.93 Mean :0
3rd Qu.: 9.000 3rd Qu.:231.0 3rd Qu.:140.0 3rd Qu.:21.00 3rd Qu.:0
Max. :12.000 Max. :332.0 Max. :212.0 Max. :46.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :35.28 Min. :-8.649 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:36.85 1st Qu.:-6.949 1st Qu.: 22.0
Median : 0.00000 Median :42.24 Median :-5.698 Median : 58.0
Mean : 0.02808 Mean :40.16 Mean :-5.691 Mean :111.2
3rd Qu.: 0.00000 3rd Qu.:43.35 3rd Qu.:-3.831 3rd Qu.:143.0
Max. :40.00000 Max. :43.57 Max. :-1.169 Max. :656.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 87.0 Min. : 64.0 Min. : 0.000 Min. :0
1st Qu.: 4.000 1st Qu.:212.0 1st Qu.:150.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.000 Median :233.0 Median :169.0 Median : 1.000 Median :0
Mean : 6.488 Mean :234.2 Mean :169.7 Mean : 5.951 Mean :0
3rd Qu.: 9.000 3rd Qu.:259.0 3rd Qu.:196.0 3rd Qu.: 7.000 3rd Qu.:0
Max. :12.000 Max. :356.0 Max. :244.0 Max. :87.000 Max. :0
prof_nieve longitud latitud altitud
Min. :0.0000000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.:0.0000000 1st Qu.:28.05 1st Qu.:-16.56 1st Qu.: 25.0
Median :0.0000000 Median :28.46 Median :-16.26 Median : 33.0
Mean :0.0003535 Mean :28.38 Mean :-15.95 Mean :129.3
3rd Qu.:0.0000000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 35.0
Max. :2.0000000 Max. :28.95 Max. :-13.60 Max. :632.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 56.0 Min. :-22.0 Min. : 23.00 Min. :0
1st Qu.: 4.000 1st Qu.:145.0 1st Qu.: 73.0 1st Qu.: 38.00 1st Qu.:0
Median : 8.000 Median :178.0 Median :100.0 Median : 48.00 Median :0
Mean : 7.097 Mean :182.8 Mean :101.9 Mean : 53.72 Mean :0
3rd Qu.:10.000 3rd Qu.:218.0 3rd Qu.:130.0 3rd Qu.: 64.00 3rd Qu.:0
Max. :12.000 Max. :352.0 Max. :221.0 Max. :133.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :28.46 Min. :-17.755 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:38.99 1st Qu.: -6.350 1st Qu.: 27.0
Median : 0.00000 Median :42.26 Median : -3.831 Median : 87.0
Mean : 0.05659 Mean :41.15 Mean : -3.810 Mean : 168.2
3rd Qu.: 0.00000 3rd Qu.:43.31 3rd Qu.: -1.787 3rd Qu.: 251.0
Max. :35.00000 Max. :43.57 Max. : 4.216 Max. :1572.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. : -4.0 Min. :-110.00 Min. : 0.00
1st Qu.: 2.000 1st Qu.:112.0 1st Qu.: 17.00 1st Qu.: 4.00
Median : 4.000 Median :145.0 Median : 42.00 Median :11.00
Mean : 5.644 Mean :141.4 Mean : 40.27 Mean :14.03
3rd Qu.:11.000 3rd Qu.:172.0 3rd Qu.: 65.00 3rd Qu.:21.00
Max. :12.000 Max. :250.0 Max. : 132.00 Max. :84.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :37.13 Min. :-8.4106
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:40.30 1st Qu.:-3.7642
Median :0.000000 Median : 0.0000 Median :41.11 Median :-1.4106
Mean :0.000921 Mean : 0.1051 Mean :40.89 Mean :-1.3710
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:41.77 3rd Qu.: 0.8031
Max. :6.000000 Max. :75.0000 Max. :43.46 Max. : 4.2156
altitud
Min. : 1
1st Qu.: 123
Median : 541
Mean : 505
3rd Qu.: 779
Max. :1894
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.00 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.: 32.00 1st Qu.: -30.00 1st Qu.: 16.00
Median : 7.000 Median : 81.00 Median : 13.00 Median : 29.00
Mean : 6.536 Mean : 88.32 Mean : 17.07 Mean : 33.19
3rd Qu.: 9.000 3rd Qu.:143.00 3rd Qu.: 66.00 3rd Qu.: 46.00
Max. :12.000 Max. :255.00 Max. : 146.00 Max. :126.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. : 0.00 Min. :40.78 Min. :-4.0103 Min. :1405
1st Qu.:0 1st Qu.: 0.00 1st Qu.:40.78 1st Qu.:-4.0103 1st Qu.:1894
Median :0 Median : 0.00 Median :42.38 Median : 0.9844 Median :2143
Mean :0 Mean : 13.25 Mean :41.94 Mean :-0.2315 Mean :2102
3rd Qu.:0 3rd Qu.: 0.00 3rd Qu.:42.53 3rd Qu.: 1.5242 3rd Qu.:2316
Max. :0 Max. :1834.00 Max. :42.77 Max. : 2.4378 Max. :2535
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : -8.0 Min. :-58.00 Min. :114.0 Min. :0
1st Qu.: 2.000 1st Qu.:109.8 1st Qu.: 48.00 1st Qu.:133.0 1st Qu.:0
Median :10.000 Median :130.0 Median : 69.00 Median :145.0 Median :0
Mean : 7.407 Mean :133.0 Mean : 70.01 Mean :158.3 Mean :0
3rd Qu.:11.000 3rd Qu.:154.0 3rd Qu.: 91.25 3rd Qu.:167.2 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:40.80 1st Qu.: -8.624 1st Qu.: 105.5
Median : 0.000 Median :42.24 Median : -8.411 Median : 261.0
Mean : 6.754 Mean :41.11 Mean : -6.504 Mean : 499.7
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -4.010 3rd Qu.: 370.0
Max. :892.000 Max. :43.49 Max. : 2.827 Max. :2400.0
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.00 Min. : 0.00 Min. :0
1st Qu.: 4.000 1st Qu.: 94.0 1st Qu.: 23.00 1st Qu.: 0.00 1st Qu.:0
Median : 7.000 Median :129.0 Median : 51.00 Median : 3.00 Median :0
Mean : 6.585 Mean :138.4 Mean : 60.83 Mean : 10.29 Mean :0
3rd Qu.:10.000 3rd Qu.:183.0 3rd Qu.: 98.00 3rd Qu.: 13.00 3rd Qu.:0
Max. :12.000 Max. :253.0 Max. :159.00 Max. :114.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.31 Min. :-16.5 Min. :2371
1st Qu.: 0.0000 1st Qu.:28.31 1st Qu.:-16.5 1st Qu.:2371
Median : 0.0000 Median :28.31 Median :-16.5 Median :2371
Mean : 0.1766 Mean :28.31 Mean :-16.5 Mean :2371
3rd Qu.: 0.0000 3rd Qu.:28.31 3rd Qu.:-16.5 3rd Qu.:2371
Max. :46.0000 Max. :28.31 Max. :-16.5 Max. :2371
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=10)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=10)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
df.cluster09 <- subset(df, cluster==9)
df.cluster10 <- subset(df, cluster==10)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster09 <- select(df.cluster09, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster10 <- select(df.cluster10, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :159.0 Min. : 37.0 Min. : 0.000 Min. :0
1st Qu.: 6.000 1st Qu.:241.0 1st Qu.:116.0 1st Qu.: 1.000 1st Qu.:0
Median : 7.000 Median :275.0 Median :149.0 Median : 5.000 Median :0
Mean : 7.324 Mean :272.9 Mean :148.6 Mean : 7.583 Mean :0
3rd Qu.: 9.000 3rd Qu.:303.0 3rd Qu.:181.0 3rd Qu.:12.000 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :44.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :35.28 Min. :-8.6239 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:38.88 1st Qu.:-3.8075 1st Qu.: 44.0
Median : 0.0000 Median :40.47 Median :-1.4106 Median : 287.0
Mean : 0.0017 Mean :40.07 Mean :-1.6434 Mean : 380.7
3rd Qu.: 0.0000 3rd Qu.:41.53 3rd Qu.: 0.6217 3rd Qu.: 667.0
Max. :35.0000 Max. :43.36 Max. : 4.2156 Max. :1894.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 82.0 Min. :-19.0 Min. : 0.00 Min. :0
1st Qu.: 3.000 1st Qu.:167.0 1st Qu.: 78.0 1st Qu.: 6.00 1st Qu.:0
Median : 6.000 Median :200.0 Median :111.0 Median :13.00 Median :0
Mean : 6.194 Mean :199.4 Mean :108.6 Mean :13.93 Mean :0
3rd Qu.: 9.000 3rd Qu.:231.0 3rd Qu.:140.0 3rd Qu.:21.00 3rd Qu.:0
Max. :12.000 Max. :332.0 Max. :212.0 Max. :46.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :35.28 Min. :-8.649 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:36.85 1st Qu.:-6.949 1st Qu.: 22.0
Median : 0.00000 Median :42.24 Median :-5.698 Median : 58.0
Mean : 0.02808 Mean :40.16 Mean :-5.691 Mean :111.2
3rd Qu.: 0.00000 3rd Qu.:43.35 3rd Qu.:-3.831 3rd Qu.:143.0
Max. :40.00000 Max. :43.57 Max. :-1.169 Max. :656.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 87.0 Min. : 64.0 Min. : 0.000 Min. :0
1st Qu.: 4.000 1st Qu.:212.0 1st Qu.:150.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.000 Median :233.0 Median :169.0 Median : 1.000 Median :0
Mean : 6.488 Mean :234.2 Mean :169.7 Mean : 5.951 Mean :0
3rd Qu.: 9.000 3rd Qu.:259.0 3rd Qu.:196.0 3rd Qu.: 7.000 3rd Qu.:0
Max. :12.000 Max. :356.0 Max. :244.0 Max. :87.000 Max. :0
prof_nieve longitud latitud altitud
Min. :0.0000000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.:0.0000000 1st Qu.:28.05 1st Qu.:-16.56 1st Qu.: 25.0
Median :0.0000000 Median :28.46 Median :-16.26 Median : 33.0
Mean :0.0003535 Mean :28.38 Mean :-15.95 Mean :129.3
3rd Qu.:0.0000000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 35.0
Max. :2.0000000 Max. :28.95 Max. :-13.60 Max. :632.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 56.0 Min. :-14.0 Min. : 23.00 Min. :0
1st Qu.: 4.000 1st Qu.:149.0 1st Qu.: 76.0 1st Qu.: 37.00 1st Qu.:0
Median : 8.000 Median :185.0 Median :104.0 Median : 45.00 Median :0
Mean : 7.025 Mean :187.6 Mean :104.9 Mean : 46.29 Mean :0
3rd Qu.:10.000 3rd Qu.:224.0 3rd Qu.:133.0 3rd Qu.: 55.00 3rd Qu.:0
Max. :12.000 Max. :352.0 Max. :221.0 Max. :103.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :28.46 Min. :-17.755 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:38.37 1st Qu.: -6.257 1st Qu.: 27.1
Median : 0.00000 Median :42.24 Median : -3.831 Median : 87.0
Mean : 0.04711 Mean :41.02 Mean : -3.726 Mean : 166.7
3rd Qu.: 0.00000 3rd Qu.:43.31 3rd Qu.: -1.636 3rd Qu.: 251.0
Max. :34.00000 Max. :43.57 Max. : 4.216 Max. :1405.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. : 8.0 Min. :-50.00 Min. : 0.00
1st Qu.: 2.000 1st Qu.:137.0 1st Qu.: 38.00 1st Qu.: 3.00
Median : 3.000 Median :160.0 Median : 60.00 Median : 9.00
Mean : 5.495 Mean :156.7 Mean : 57.12 Mean :12.97
3rd Qu.:11.000 3rd Qu.:180.0 3rd Qu.: 79.00 3rd Qu.:19.00
Max. :12.000 Max. :247.0 Max. :132.00 Max. :68.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.00000 Min. :37.79 Min. :-3.8189
1st Qu.:0.000000 1st Qu.: 0.00000 1st Qu.:39.85 1st Qu.: 0.3264
Median :0.000000 Median : 0.00000 Median :41.39 Median : 0.7106
Mean :0.001004 Mean : 0.04864 Mean :40.86 Mean : 0.8598
3rd Qu.:0.000000 3rd Qu.: 0.00000 3rd Qu.:41.84 3rd Qu.: 2.0697
Max. :4.000000 Max. :59.00000 Max. :43.46 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 35.0
Median : 91.0
Mean :187.8
3rd Qu.:316.0
Max. :953.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.00 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.: 32.00 1st Qu.: -30.00 1st Qu.: 16.00
Median : 7.000 Median : 81.00 Median : 13.00 Median : 29.00
Mean : 6.536 Mean : 88.32 Mean : 17.07 Mean : 33.19
3rd Qu.: 9.000 3rd Qu.:143.00 3rd Qu.: 66.00 3rd Qu.: 46.00
Max. :12.000 Max. :255.00 Max. : 146.00 Max. :126.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. : 0.00 Min. :40.78 Min. :-4.0103 Min. :1405
1st Qu.:0 1st Qu.: 0.00 1st Qu.:40.78 1st Qu.:-4.0103 1st Qu.:1894
Median :0 Median : 0.00 Median :42.38 Median : 0.9844 Median :2143
Mean :0 Mean : 13.25 Mean :41.94 Mean :-0.2315 Mean :2102
3rd Qu.:0 3rd Qu.: 0.00 3rd Qu.:42.53 3rd Qu.: 1.5242 3rd Qu.:2316
Max. :0 Max. :1834.00 Max. :42.77 Max. : 2.4378 Max. :2535
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip
Min. : 1.00 Min. : -4.0 Min. :-110 Min. : 0.00
1st Qu.: 2.00 1st Qu.: 99.0 1st Qu.: 5 1st Qu.: 5.00
Median : 4.00 Median :126.0 Median : 27 Median :12.00
Mean : 5.77 Mean :128.5 Mean : 26 Mean :14.93
3rd Qu.:11.00 3rd Qu.:159.0 3rd Qu.: 48 3rd Qu.:22.00
Max. :12.00 Max. :250.0 Max. : 113 Max. :84.00
nevada prof_nieve longitud latitud
Min. :0.00000 Min. : 0.0000 Min. :37.13 Min. :-8.411
1st Qu.:0.00000 1st Qu.: 0.0000 1st Qu.:40.38 1st Qu.:-4.680
Median :0.00000 Median : 0.0000 Median :40.95 Median :-3.678
Mean :0.00085 Mean : 0.1529 Mean :40.91 Mean :-3.260
3rd Qu.:0.00000 3rd Qu.: 0.0000 3rd Qu.:41.77 3rd Qu.:-1.885
Max. :6.00000 Max. :75.0000 Max. :43.35 Max. : 2.482
altitud
Min. : 162.0
1st Qu.: 627.0
Median : 750.0
Mean : 773.5
3rd Qu.: 916.0
Max. :1894.0
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 59.0 Min. :-22.00 Min. : 65.00 Min. :0
1st Qu.: 3.000 1st Qu.:130.0 1st Qu.: 62.00 1st Qu.: 79.00 1st Qu.:0
Median :10.000 Median :154.0 Median : 84.00 Median : 87.00 Median :0
Mean : 7.448 Mean :159.3 Mean : 86.93 Mean : 90.29 Mean :0
3rd Qu.:11.000 3rd Qu.:184.0 3rd Qu.:110.00 3rd Qu.:100.00 3rd Qu.:0
Max. :12.000 Max. :307.0 Max. :211.00 Max. :133.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.48 Min. :-17.755 Min. : 1
1st Qu.: 0.0000 1st Qu.:41.58 1st Qu.: -8.411 1st Qu.: 25
Median : 0.0000 Median :42.78 Median : -3.831 Median : 95
Mean : 0.1032 Mean :41.80 Mean : -4.221 Mean : 176
3rd Qu.: 0.0000 3rd Qu.:43.31 3rd Qu.: -1.787 3rd Qu.: 261
Max. :35.0000 Max. :43.57 Max. : 4.216 Max. :1572
if (!empty_nodes) summary(df.cluster09)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : -8.0 Min. :-58.00 Min. :114.0 Min. :0
1st Qu.: 2.000 1st Qu.:109.8 1st Qu.: 48.00 1st Qu.:133.0 1st Qu.:0
Median :10.000 Median :130.0 Median : 69.00 Median :145.0 Median :0
Mean : 7.407 Mean :133.0 Mean : 70.01 Mean :158.3 Mean :0
3rd Qu.:11.000 3rd Qu.:154.0 3rd Qu.: 91.25 3rd Qu.:167.2 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:40.80 1st Qu.: -8.624 1st Qu.: 105.5
Median : 0.000 Median :42.24 Median : -8.411 Median : 261.0
Mean : 6.754 Mean :41.11 Mean : -6.504 Mean : 499.7
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -4.010 3rd Qu.: 370.0
Max. :892.000 Max. :43.49 Max. : 2.827 Max. :2400.0
if (!empty_nodes) summary(df.cluster10)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.00 Min. : 0.00 Min. :0
1st Qu.: 4.000 1st Qu.: 94.0 1st Qu.: 23.00 1st Qu.: 0.00 1st Qu.:0
Median : 7.000 Median :129.0 Median : 51.00 Median : 3.00 Median :0
Mean : 6.585 Mean :138.4 Mean : 60.83 Mean : 10.29 Mean :0
3rd Qu.:10.000 3rd Qu.:183.0 3rd Qu.: 98.00 3rd Qu.: 13.00 3rd Qu.:0
Max. :12.000 Max. :253.0 Max. :159.00 Max. :114.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.31 Min. :-16.5 Min. :2371
1st Qu.: 0.0000 1st Qu.:28.31 1st Qu.:-16.5 1st Qu.:2371
Median : 0.0000 Median :28.31 Median :-16.5 Median :2371
Mean : 0.1766 Mean :28.31 Mean :-16.5 Mean :2371
3rd Qu.: 0.0000 3rd Qu.:28.31 3rd Qu.:-16.5 3rd Qu.:2371
Max. :46.0000 Max. :28.31 Max. :-16.5 Max. :2371
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1], dim(df.cluster09)[1], dim(df.cluster10)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08", "cluster09", "cluster10"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.hist(df.cluster09)
if (!empty_nodes) mpr.hist(df.cluster10)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster09)
if (!empty_nodes) mpr.boxplot(df.cluster10)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
df.cluster09.grouped <- mpr.group_by_geo(df.cluster09)
df.cluster10.grouped <- mpr.group_by_geo(df.cluster10)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster09.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster10.grouped)